home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / include / incl98.zoo / widget.h < prev    next >
C/C++ Source or Header  |  1993-07-10  |  5KB  |  190 lines

  1. #ifndef _WIDGET_H
  2. #define _WIDGET_H
  3.  
  4. #ifndef _COMPILER_H
  5. #include <compiler.h>
  6. #endif
  7.  
  8. /*****************************************************************************
  9. /*  FILE:        widget.h
  10. /*  DATE:        August 1988.
  11. /*  AUTHOR:        Richard A. Culshaw.
  12. /*  DESCRIPTION:    Contains the definitions of the widget structures.
  13. /*            It should be included by all programs that want to
  14. /*            use the widget library.
  15. /* DISCLAIMER:        This file is deemed to be public-domain, on the simple
  16. /*            provisos that this section remains in this file and
  17. /*            that code using it do not do so for monetary gain.
  18. /*            Neither the author, nor the authors employees at the
  19. /*            time of developing this code, accept any liability or
  20. /*            responsibility for the use, abuse or misuse of this
  21. /*            code.
  22. /*****************************************************************************/
  23.  
  24. #include <stddef.h>
  25. #include <stdlib.h>
  26. #include <string.h>
  27. #include <memory.h>
  28. #include <curses.h>
  29.  
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33.  
  34. /* definition for command widget entry in linked list */
  35. struct    cmdwid{
  36.             WINDOW        *widget;
  37.             int        id;
  38.             char        msg[100];
  39.             char        acpt;
  40.             int        (*func)();
  41.             int        length;    
  42.             int        x,y;
  43.         int        active;
  44.             struct cmdwid    *next;
  45.         } *cmdlist;
  46.  
  47. /* definition for label widget entry in linked list */
  48. struct    lblwid{
  49.             WINDOW        *widget;
  50.             int        id;
  51.             char        msg[100];
  52.             char        pos;
  53.             int        length;    
  54.         int        difference;
  55.             int        x,y;
  56.             struct lblwid    *next;
  57.         } *lbllist;
  58.  
  59. /* definition for togle widget entry in linked list */
  60. struct     tglwid{
  61.             WINDOW        *widget;
  62.             int        id;
  63.             char        msg[100];
  64.             char        tgl[10][20];
  65.             char        toggle;
  66.             int        cur;
  67.          int         total;
  68.             int        length;
  69.             int         xtgl;
  70.             int        x,y;
  71.         int        active;
  72.             struct tglwid    *next;
  73.         } *tgllist;
  74.  
  75. /* definition for input widget entry in linked list */
  76. struct inpwid{
  77.             WINDOW        *widget;
  78.             int         id;
  79.         char        msg[100];
  80.             char        acpt;
  81.             char        *input;
  82.         int        sofi;
  83.         int        exec;
  84.             int        lofs;
  85.             int        length;
  86.             int        x,y;
  87.         int        active;
  88.             struct inpwid    *next;
  89.         } *inplist;
  90.     
  91. /* linked list of characters used for activating widgets */    
  92. struct chentry {
  93.             char          ch;
  94.             int           type;
  95.             int          id;
  96.         struct chentry    *next;
  97.         } *actlist;
  98.  
  99. /* null entries in the various linked list */
  100. #define NULLCMD        (struct cmdwid *)NULL
  101. #define NULLLBL     (struct lblwid *)NULL
  102. #define NULLTGL     (struct tglwid *)NULL
  103. #define NULLINP     (struct inpwid *)NULL
  104. #define NULLCH         (struct chentry *)NULL
  105.  
  106. /* part of the specifications for label widgets */
  107. #define CENTRE        1
  108. #define    LEFTJUST    2
  109. #define RIGHTJUST    4
  110. #define NOHIGH        8
  111.  
  112. /* the types of the widgets */
  113. #define CMD        1
  114. #define TGL        2
  115. #define LBL        3
  116. #define INP        4
  117.  
  118. #define BLANK        1
  119. #define NOBLANK        0
  120.  
  121. #define NULLWIDGET    0
  122.  
  123. #define EXEC        1
  124. #define NOEXEC        0
  125.  
  126. #define VERTICAL    1
  127. #define HORIZONTAL    2
  128.  
  129. typedef int WIDGET;
  130. typedef int WIDGETTYPE;
  131.  
  132. __EXTERN int activate __PROTO((WIDGET));
  133. __EXTERN int addtochlist __PROTO((int, int, WIDGETTYPE));
  134.  
  135. __EXTERN void boxwidget __PROTO((WINDOW *, int));
  136.  
  137. __EXTERN int chactive __PROTO((WIDGET, int, int));
  138. __EXTERN int changelblwidget __PROTO((WIDGET, char *, int));
  139. __EXTERN void cleartextwindow __PROTO((void));
  140.  
  141. __EXTERN int deactivate __PROTO((WIDGET, int));
  142. __EXTERN int dehighlight __PROTO((WIDGET));
  143. __EXTERN void deletechentry __PROTO((int));
  144. __EXTERN void drawcmdwidget __PROTO((WINDOW *, char *, int, int, int));
  145. __EXTERN void drawinpwidget __PROTO((WINDOW *, char *, int, int, int, int));
  146. __EXTERN void drawlblwidget __PROTO((WINDOW *, char *, int, int, int, int));
  147. __EXTERN void drawtextwindow __PROTO((int));
  148. __EXTERN void drawtglwidget __PROTO((WINDOW *, char *, char *, int, int, int));
  149.  
  150. __EXTERN void endwidgets __PROTO((void));
  151.  
  152. __EXTERN int getinput __PROTO((WIDGET));
  153.  
  154. __EXTERN int highlight __PROTO((WIDGET));
  155. __EXTERN void home __PROTO((void));
  156.  
  157. __EXTERN void initialisewidgets __PROTO((void));
  158.  
  159. __EXTERN void killcmdwidget __PROTO((WIDGET));
  160. __EXTERN void killinpwidget __PROTO((WIDGET));
  161. __EXTERN void killlblwidget __PROTO((WIDGET));
  162. __EXTERN void killtextwindow __PROTO((void));
  163. __EXTERN void killtglwidget __PROTO((WIDGET));
  164. __EXTERN int killwidget __PROTO((WIDGET));
  165.  
  166. __EXTERN int light __PROTO((WIDGET, int));
  167.  
  168. __EXTERN WIDGET mkcmdwidget __PROTO((char *, int, int (*)(), int));
  169. __EXTERN WIDGET mkinpwidget __PROTO((char *, int, char *, int, int, int, int));
  170. __EXTERN WIDGET mklblwidget __PROTO((char *, int, int, int));
  171. __EXTERN WIDGET mktglwidget __PROTO((char *, int, char **, int, int));
  172.  
  173. __EXTERN int opentextwindow __PROTO((int, int));
  174.  
  175. __EXTERN void report __PROTO((char *));
  176.  
  177. __EXTERN void screenrefresh __PROTO((void));
  178.  
  179. __EXTERN void togglewidget __PROTO((WIDGET));
  180. __EXTERN int tsttglwidget __PROTO((WIDGET));
  181.  
  182. __EXTERN WIDGET widgetinput __PROTO((void));
  183. __EXTERN WIDGETTYPE  widgettype __PROTO((WIDGET));
  184.  
  185. #ifdef __cplusplus
  186. }
  187. #endif
  188.  
  189. #endif /* _WIDGET_H */
  190.